System.Collections.ObjectModel.KeyedCollection<TKey,TItem>. Método ChangeItemKey
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
El ChangeItemKey(TItem, TKey) método no modifica la clave incrustada en item
; simplemente reemplaza la clave guardada en el diccionario de búsqueda. Por lo tanto, si newKey
es diferente de la clave incrustada en item
, no puede tener acceso item
mediante la clave devuelta por GetKeyForItem.
Este método no hace nada si KeyedCollection<TKey,TItem> no tiene un diccionario de búsqueda.
Cada clave de un KeyedCollection<TKey,TItem> elemento debe ser única. Una clave no puede ser null
.
Este método es una operación O(1).
Notas de los implementadores
Antes de modificar la clave incrustada en un elemento, debe llamar a este método para actualizar la clave en el diccionario de búsqueda. Si el umbral de creación del diccionario es -1, no es necesario llamar a este método.
No exponga el ChangeItemKey método como método público de una clase derivada. El uso incorrecto de este método hace que el diccionario de búsqueda no se sincronice con las claves de elemento. Por ejemplo, al establecer la clave en null
y, a continuación, establecerla en otro valor agrega varias claves para un elemento al diccionario de búsqueda. Exponga este método internamente para permitir claves de elemento mutables: cuando cambia la clave de un elemento, este método se usa para cambiar la clave en el diccionario de búsqueda.